/**********************************************************************
 *<
	FILE: RefCheck.h

	DESCRIPTION:	Template Utility

	CREATED BY:

	HISTORY:

 *>	Copyright (c) 1997, All Rights Reserved.
 **********************************************************************/

#ifndef __REFCHECK__H
#define __REFCHECK__H

#include "Max.h"
#include "resource.h"
#include "utilapi.h"
#include "istdplug.h"
#include "stdmat.h"
#include "bmmlib.h"
#include <io.h>

#include "iparamb2.h"
#include "iparamm2.h"
#include "IDxMaterial.h"
#include <ifnpub.h>

#define REFCHECK_CLASS_ID	Class_ID(0x29a621d4, 0x3b6919bf)
#define REFCHECK_FP_INTERFACE  Interface_ID(0x5bbf4ce8, 0x31c00a8)

extern ClassDesc*	GetRefCheckDesc();
extern HINSTANCE	hInstance;
extern TCHAR*		GetString(int id);

#define COPYWARN_YES		0x00
#define COPYWARN_YESTOALL	0x01
#define COPYWARN_NO			0x02
#define COPYWARN_NOTOALL	0x03

/**
 * The NameEnumCallBack used to find all Light Dist. files.
 */

class RefCheck : public UtilityObj {
protected:
	static RefCheck* ms_Singleton;
public:
	IUtil *iu;
	Interface *ip;
	HWND hPanel;
public:
	RefCheck();
	~RefCheck();
	/////////////////////////////////////////
	static RefCheck& getSingleton( void )
	{	
		getSingletonPtr();
		assert( ms_Singleton ); 
		return ( *ms_Singleton );
	}
	static RefCheck* getSingletonPtr( void )
	{
		if (!ms_Singleton)
		{
			ms_Singleton = new RefCheck();			
		}
		return ms_Singleton;
	}
	///////////////////////////////////////////
	void BeginEditParams(Interface *ip,IUtil *iu);
	void EndEditParams(Interface *ip,IUtil *iu);
	void DeleteThis() {}

	void Init(HWND hWnd);
	void Destroy(HWND hWnd);

	void DoDialog(BOOL ToCheckExternalMtlLibDependency = FALSE);

	bool GetIncludeMatLib();
	bool GetIncludeMedit();
	//PBITMAPINFO	pDib;
};

//static RefCheck theRefCheck;
#endif // __REFCHECK__H
